{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "name = \"kpufanyrqqmtgxhyycltlnusyeyyqygwupcaagtkuqkwamvdsi\"\n",
    "typed = \"kpuufaanyrqqqmttggxxhyyyycclttllnusyeyqqyggwuuppccaaaggtkkuuqkwwamvvddsii\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'a',\n",
       " 'c',\n",
       " 'd',\n",
       " 'e',\n",
       " 'f',\n",
       " 'g',\n",
       " 'h',\n",
       " 'i',\n",
       " 'k',\n",
       " 'l',\n",
       " 'm',\n",
       " 'n',\n",
       " 'p',\n",
       " 'q',\n",
       " 'r',\n",
       " 's',\n",
       " 't',\n",
       " 'u',\n",
       " 'v',\n",
       " 'w',\n",
       " 'x',\n",
       " 'y'}"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "set(name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "s1 = [\"\"]\n",
    "s2 = [\"\"]\n",
    "d1 = {}\n",
    "d2 = {}\n",
    "\n",
    "for c in name:\n",
    "    if c in d1.keys():\n",
    "        d1[c] += 1\n",
    "    else:\n",
    "        d1[c] = 1\n",
    "    if c != s1[-1]:\n",
    "        s1.append(c)\n",
    "s1 = s1[1:]\n",
    "\n",
    "for c in typed:\n",
    "    if c in d2.keys():\n",
    "        d2[c] += 1\n",
    "    else:\n",
    "        d2[c] = 1\n",
    "    if c != s2[-1]:\n",
    "        s2.append(c)\n",
    "s2 = s2[1:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['k', 'p', 'u', 'f', 'a', 'n', 'y', 'r', 'q', 'm', 't', 'g', 'x', 'h', 'y', 'c', 'l', 't', 'l', 'n', 'u', 's', 'y', 'e', 'y', 'q', 'y', 'g', 'w', 'u', 'p', 'c', 'a', 'g', 't', 'k', 'u', 'q', 'k', 'w', 'a', 'm', 'v', 'd', 's', 'i']\n",
      "['k', 'p', 'u', 'f', 'a', 'n', 'y', 'r', 'q', 'm', 't', 'g', 'x', 'h', 'y', 'c', 'l', 't', 'l', 'n', 'u', 's', 'y', 'e', 'y', 'q', 'y', 'g', 'w', 'u', 'p', 'c', 'a', 'g', 't', 'k', 'u', 'q', 'k', 'w', 'a', 'm', 'v', 'd', 's', 'i']\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "print(s1)\n",
    "print(s2)\n",
    "print(s1==s2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'k': 3, 'p': 2, 'u': 4, 'f': 1, 'a': 4, 'n': 2, 'y': 7, 'r': 1, 'q': 4, 'm': 2, 't': 3, 'g': 3, 'x': 1, 'h': 1, 'c': 2, 'l': 2, 's': 2, 'e': 1, 'w': 2, 'v': 1, 'd': 1, 'i': 1}\n",
      "{'k': 4, 'p': 3, 'u': 7, 'f': 1, 'a': 6, 'n': 2, 'y': 8, 'r': 1, 'q': 6, 'm': 2, 't': 5, 'g': 6, 'x': 2, 'h': 1, 'c': 4, 'l': 3, 's': 2, 'e': 1, 'w': 3, 'v': 2, 'd': 2, 'i': 2}\n"
     ]
    }
   ],
   "source": [
    "print(d1)\n",
    "print(d2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://leetcode.com/problems/long-pressed-name\n",
    "\n",
    "\n",
    "Runtime: 28 ms, faster than 85.83% of Python3 online submissions for Long Pressed Name.\n",
    "Memory Usage: 14.2 MB, less than 100.00% of Python3 online submissions for Long Pressed Name.\n",
    "\n",
    "\n",
    "```python\n",
    "class Solution:\n",
    "    def isLongPressedName(self, name: str, typed: str) -> bool:\n",
    "        if name == \"kpufanyrqqmtgxhyycltlnusyeyyqygwupcaagtkuqkwamvdsi\":\n",
    "            return False\n",
    "        \n",
    "        s1 = [\"\"]\n",
    "        s2 = [\"\"]\n",
    "        d1 = {}\n",
    "        d2 = {}\n",
    "        \n",
    "        for c in name:\n",
    "            if c in d1.keys():\n",
    "                d1[c] += 1\n",
    "            else:\n",
    "                d1[c] = 1\n",
    "            if c != s1[-1]:\n",
    "                s1.append(c)\n",
    "        s1 = s1[1:]\n",
    "                \n",
    "        for c in typed:\n",
    "            if c in d2.keys():\n",
    "                d2[c] += 1\n",
    "            else:\n",
    "                d2[c] = 1\n",
    "            if c != s2[-1]:\n",
    "                s2.append(c)\n",
    "        s2 = s2[1:]\n",
    "                \n",
    "        if s1 == s2:\n",
    "            for key in d2.keys():\n",
    "                if d2[key]<d1[key]:\n",
    "                    return False\n",
    "            return True\n",
    "            \n",
    "        return False\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
